草庐IT

Java jackson org.codehaus.jackson.map.exc.UnrecognizedPropertyException

全部标签

java - Java中,在Map中使用Set作为key有什么注意事项?

我不确定关于在map中使用动态对象(例如集合)作为键的主流观点是什么。我知道典型的Map实现(例如HashMap)使用哈希码来决定将条目放入哪个桶中,并且如果该哈希码以某种方式发生变化(可能是因为Set的内容应该发生变化),那么这可能会导致桶被错误计算,从而弄乱HashMap(与Set最初插入HashMap的方式相比)。但是,如果我确保Set的内容完全不变,这是否是一个可行的选择?即便如此,由于Set固有的易变性(即使采取预防措施确保它们不被修改),这种方法是否通常被认为容易出错?看起来Java允许将函数参数指定为最终参数;这也许是可以采取的一个小预防措施?人们甚至在商业/开源实践中做

java - Jackson @JsonIgnore 改变了语义?

我们刚刚升级了一些Maven依赖项,这触发了Jackson从1.7.x到1.9.x的更新我们使用@JsonIgnore在setter方法上注释,在不应该从客户端设置的方法上。例如:对象的所有者(with应该从身份验证主体中设置)等。在我们看来,这个注释的语义已经改变了,这可能吗?现在该字段在所有情况下都被jsonignored,而不仅仅是在设置时。是这样吗?1.9中是否有替代方法来仅实现忽略SET?谢谢! 最佳答案 好的,我想我在javadoc中发现并明确提到了这个问题。(jackson的文档不容易看懂)。Inaddition,st

java - Jackson 在反序列化过程中对属性进行动态过滤

我有一个RESTWS来更新接收JSON字符串作为输入的bean对象。ABeanentity=svc.findEntity(...);objectMapper.readerForUpdating(entity).readValue(json);[...]svc.save(entity);ABean是一种复杂类型,还包含其他对象例如:classABean{publicBBeanb;publicCBeanc;publicStringd;}svc.save(...)将保存bean和嵌入的对象。出于安全原因,我想过滤掉一些可以由JSON字符串更新的属性,但我想动态地执行此操作,以便对于每个WS(

java - 使用 Jackson 向 JSON 添加属性

所以我的jsonStr是这样的[{"data":[{"itemLabel":"SocialMedia","itemValue":90},{"itemLabel":"Blogs","itemValue":30},{"itemLabel":"TextMessaging","itemValue":60},{"itemLabel":"Email","itemValue":90}]}]我想像这样在data数组之后添加一个属性[{"data":[{"itemLabel":"SocialMedia","itemValue":90},{"itemLabel":"Blogs","itemValue":3

java - 警告 : A HTTP GET method, public javax.ws.rs.core.Response... 抛出 org.codehaus.jettison.json.JSONException,不应消耗任何实体

我有以下GET方法,它无法将结果发送回客户端。/*@GETheredefines,thismethodwillprocessHTTPGETrequests.*/@GET@Path("/test/{name}/{status}")@Produces("application/json")publicResponseName(@PathParam("name,status")Stringname,Stringstatus)throwsJSONException{Stringtotal="100";...Stringresult=""+jsonObject;returnResponse.st

java - 如何断言 map 包含带有条目的 map

我有一个单元测试需要检查嵌套映射值。我可以通过拉出条目并匹配底层Map来使我的断言起作用,但我一直在寻找一种清晰的方式来展示断言的作用。这是一个非常简化的测试:importstaticorg.hamcrest.MatcherAssert.assertThat;importstaticorg.hamcrest.Matchers.hasEntry;importjava.util.HashMap;importjava.util.Map;importorg.junit.Test;publicclassMapContainsMapTest{@TestpublicvoidtestMapHasMap

java - 如何使用 Jackson 将 map 序列化为列表

如何将一个Map属性序列化为Map值的列表?我已经能够使用setter/getter上的@JsonSerialize(using=...)注释进行其他简单的转换。但是,我不确定是否存在我想做的事情。 最佳答案 我们需要类似的东西,在我们的例子中,我们使用自定义的@JsonSerialize正如你评论的那样,它非常简单:publicclassMyCustomSerializerextendsJsonSerializer>{@Overridepublicvoidserialize(finalMapvalue,finalJsonGener

java - 如何使用 Jackson 和注释以不同方式序列化关联对象?

给定以下类层次结构,我希望Foo根据它在我的类层次结构中使用的上下文进行不同的序列化。publicclassFoo{publicStringbar;publicStringbiz;}publicclassFooContainer{publicFoofooA;publicFoofooB;}当我序列化FooContainer时,我希望biz属性不出现在fooB中。所以输出看起来像下面这样。{"fooA":{"bar":"asdf","biz":"fdsa"},"fooB":{"bar":"qwer"}}我打算使用一些JsonView,但必须在类的所有实例的映射器层应用它,并且这是依赖于上下

java - 使用流/对象方法将 JSON 解析为 Jackson

我有一个可以有多种类型的JSON文件。例如:{"dog":{"owner":"JohnSmith","name":"Rex","toys":{"chewtoy":"5","bone":"1"}},"person":{"name":"JohnDoe","address":"23SomewhereLane"}//Furtherexamplesofdogsandpeople,andafewothertypes.}我想将这些解析为对象。IE。我想创建一个具有owner/name/toys属性的Dog对象,以及具有name/address属性的person,然后使用Jackson读取并从中创建对

java - 如何让 Wildfly 使用额外的 Jackson 数据类型?

我遇到了这个错误03:33:14,938WARN[org.jboss.resteasy.core.ExceptionHandler](defaulttask-1)FailedexecutingPUT/individual/5a247ce9-0a73-4373-89ce-e4177f911259/activities/432e6e5b-4185-462f-b57e-9ec04bec3d58:org.jboss.resteasy.spi.ReaderException:org.codehaus.jackson.map.JsonMappingException:Cannotinstantia